From a886bbd1ef6360a71bbb65b6b7d67bc992e09c6e Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 5 Dec 2008 15:22:21 +0000 Subject: [PATCH] powernow: implement struct cpufreq_driver.verify Without this, under rare conditions hypervisor crashes are possible due to this method being called without checking against NULL. Signed-off-by: Jan Beulich --- xen/arch/x86/acpi/cpufreq/powernow.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c index b43de6a5cf..f69b425a0c 100644 --- a/xen/arch/x86/acpi/cpufreq/powernow.c +++ b/xen/arch/x86/acpi/cpufreq/powernow.c @@ -129,6 +129,16 @@ static int powernow_cpufreq_target(struct cpufreq_policy *policy, return result; } +static int powernow_cpufreq_verify(struct cpufreq_policy *policy) +{ + struct powernow_cpufreq_data *data; + + if (!policy || !(data = drv_data[policy->cpu])) + return -EINVAL; + + return cpufreq_frequency_table_verify(policy, data->freq_table); +} + static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy) { unsigned int i; @@ -243,6 +253,7 @@ static int powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy) } static struct cpufreq_driver powernow_cpufreq_driver = { + .verify = powernow_cpufreq_verify, .target = powernow_cpufreq_target, .init = powernow_cpufreq_cpu_init, .exit = powernow_cpufreq_cpu_exit -- 2.30.2